
var RegDemo = {};
function getTypeName(obj){
    if (obj==null)
      return 'null';
    let stypnam = '';
    //let obtype = typeof(obj);
    let obtype = typeof(obj);
    if (obtype=="object"){
        if (obj instanceof Array) {
            stypnam='Array';
        }else if (obj instanceof Date) {
            stypnam='Date';
        }else if (obj instanceof Error) {
            stypnam='Error';
        }else if (obj instanceof Function) {
            stypnam='Function';
        //}else if (obj instanceof JSON) {
        //    stypnam='JSON';
        //}else if (obj instanceof null) {
        //    stypnam='null';
        }else if (obj instanceof RegExp) {
            stypnam='RegExp';
        }else {    
            stypnam='Object';
        }
    }else{
        stypnam = obtype.toString();
    };
    return stypnam;
}

function matchRegexp(str,reg){
    let o_MatchResult=str.match(reg);	
    let e_textarea=document.getElementById("view1");
    e_textarea.value = e_textarea.value + 'Regexp:\"'+reg.toString()+'\"\tText:\"'+ str+'\"\n';
    let stypnam = getTypeName(o_MatchResult);
        e_textarea.value = e_textarea.value + '匹配结果的类型:'+ stypnam+'\n';
    //view1.innerText = e_textarea.innerText + '\n匹配结果:\n'+ match_s;
    if (o_MatchResult==null){
        e_textarea.value = e_textarea.value + '匹配结果文本为空(null)\n';
    }else if (stypnam=='Array'){
        let nrow = o_MatchResult.length;
        e_textarea.value = e_textarea.value + '匹配结果数组('+nrow.toString()+'行):\n';
        if (nrow>0){
            for (let ix=0;ix<nrow;ix++) {
                e_textarea.value = e_textarea.value +'['+ix+']:\"'+ o_MatchResult[ix]+'\"\n';
            }
        };
    }else{
        e_textarea.value = e_textarea.value + '匹配结果文本内容:\n\"'+o_MatchResult.toString()+'\"\n';
    };

}
function testRegexp(reg,str){
    let e_textarea=document.getElementById("view1");
    let test_b=reg.test(str);	
    if (test_b){
      e_textarea.value = e_textarea.value + 'String.test(RegExp)测试通过。\n\n';
    }else{
      e_textarea.value = e_textarea.value + 'String.test(RegExp)测试不过。\n\n';
    }
}

function test1(){
    debugger
    console.log("Enter test1().");	
    let view1=document.getElementById("view1");
    let myreg=null;
    let srctx="";
    //基本,match,test
    //1.(.*?)匹配所有字符串，{. - 除换行符以外的所有字符。}
    //{ ? - 0 次或 1 次匹配。* - 匹配 0 次或多次。+ - 匹配 1 次或多次。}
    myreg=/(.*)/;
    view1.value = view1.value + '1.'+myreg.toString()+' 匹配所有字符串(含空字符串)\n';
    srctx="";
    matchRegexp(srctx,myreg);
    testRegexp(myreg,srctx);
    
    myreg=/(.+)/;
    view1.value = view1.value + '2. '+myreg.toString()+' 匹配所有字符串(含空格)\n';
    srctx="";
    matchRegexp(srctx,myreg);
    testRegexp(myreg,srctx);
    srctx=" ";
    matchRegexp(srctx,myreg);
    testRegexp(myreg,srctx);
    srctx=" AbcD1234 中文(!@#$%) ";
    matchRegexp(srctx,myreg);
    testRegexp(myreg,srctx);
    
    myreg=/.+/;
    view1.value = view1.value + '2.1'+myreg.toString()+' 匹配所有字符串(含空格)\n';
    srctx=" ";
    matchRegexp(srctx,myreg);
    testRegexp(myreg,srctx);
 
    srctx=" AbcD1234 中文(!@#$%) ";
    matchRegexp(srctx,myreg);
    testRegexp(myreg,srctx);
    
    myreg=/\s*\S+\s*/;
    view1.value = view1.value + '3. '+myreg.toString()+' 至少含有1个以上非空格\n';
    srctx=" ";
    matchRegexp(srctx,myreg);
    testRegexp(myreg,srctx);
    srctx="  Ab1(非 空 格)  ";
    matchRegexp(srctx,myreg);
    testRegexp(myreg,srctx);
    
    myreg=/(\s*\S+\s*)/g;
    view1.value = view1.value + '3.1'+myreg.toString()+' 至少含有1个以上非空格/g\n';
    matchRegexp(srctx,myreg);
    testRegexp(myreg,srctx);
    
    myreg=/\s*\S+\s*/g;
    view1.value = view1.value + '3.2'+myreg.toString()+' 至少含有1个以上非空格/g\n';
    matchRegexp(srctx,myreg);
    testRegexp(myreg,srctx);
    
    //4.大写英文
    myreg=/[A-Z]*/g;
    view1.value = view1.value + '4. '+myreg.toString()+' 大写英文/g\n';
    srctx=" ABCD";
    //console.log("match:",myreg);	
    matchRegexp(srctx,myreg);
    testRegexp(myreg,srctx);
    
}
function test2(){
    let view1=document.getElementById("view1");
    view1.value = "";
}

function test3(){
    debugger
    console.log("Enter test3().");	
    let url = 'HTTPS://adfassdfasdf';
    if (/(http|https):\/\/\S*/i.test(url)){
        console.log('http match:'+url);
    }else{
        console.log('http no match:'+url);
    }
}